Cleanup and formatting, added InvalidCastException which extends CallerException