add request constraint model
add tests for new model