keyboardhandler is now working (WIP), added a simple factory for gamestates handling