Seperating controller header and implementation
Same as last commit