made another custom exception, cleaned up some comments