started adding constraint implementations