so many errors to catch..