cleaned, added requirements