Cleaning up and documenting
added kernel extention to be able to use 'context' just like 'class' and 'module'
reordered methods for readability