Updated requirements to have better implemententation.