Separate controllers and modularization