added categories for handling errors and exceptions more easily