Initial

added tests and initial source