linting and tests