Base implementation

I would suggest a separate controller for this.