add initial Move implementation
improve types and add transposition table