Adding tests, dependencies, and initial functionality