refactor controllers to use expose_decorated + some minor improvment