error handling, more working functions