Added ConstraintKinds extension to help clean up some type signatures; prettied code a little bit and renomenclaturized slightly.