Base implementation

Add a `@todo`, and consider splitting it into a different controller if there is space for looser coupling.