Added requirements and formatting