now with bigger better function -> need to implement constraint function