Begin refactor GraphicEngine