add declarative require, additional linting and comments