added in more specific requirements and renamed header