added more constraints