assignment requirements implemented