game architecture + some implementation