divided controller into many small controllers