made constraint functions extensible :-D