adds some validation for requirement inputs, some PEP8 applied