Better error handling and messages