changed coerce function to not use constructor

moved constraints to own module to pun names