added basic classes, tests and documents