controller as container + test refactor