- better error handling