TODO : screen management, use shaders etc