consolidated methods
updated error handling