Refactoring + City Factory

Signed-off-by: vrtalale <ales.vrtal@post.cz>