Improvements to Kernel
Stop non public methods from being called
Handle Exceptions through a separate method to allow for overrides
Added docblocks