unit testing, linting and ci prepared