begin implementing exception handling