added better error support