add error handling to project, this will probably need reviewal