added requirements and deleted redundancy