better 'not authorized' exception
removed unused code
comments in ability class