improved but didn't finish controller.create()