add controlers
refactoring