added custom constraints