add test/implementation for base controller