added 2d controler