linting and optimizing