always pass parent controller, not using root anymore