with requirememts