implemented proper error handling in unify
i accidentally did a thing and now i have marks