Revised based on assignment requirements