completes basic constraint propogation functionality