Update the codebase to be more inline with current state of the art - [ ] #6 - [ ] #7 - [ ] #8
Update the codebase to be more inline with current state of the art