implemented constraints