implemented errors and error objects throughout the toolkit for way better error handling