added requirements file and tests