playing with x macros and bitboards