split code into seperate header and implementation files, implemented bitboards.