implement requirements