cleanup, better error handling (tutorial 5)