refactoring and reorganization, commenting, moving timing to TipGameController