Fix error handling, add test