added testing and linting