better error handling & display