Refactoring
Full game implemented