added custom exceptions
moved errors