Refactor the whole structure.
Add better interface for using player and board objects.
Merge branch 'refactoring'