divided controller into multiple controllers