Implemented all legal move generation