refactor exception handling. now they have their separate reusable methods.