changed fireHook to be error-first, closes #319