Adding Tests, more documentation.