bj: [WIP] refactored some logic, added Player class