refactor settings and requirements