You don't actually _need_ more than a couple of macros, check my sig for details.