initial commit
implmented the module
added few tests
added some pending tests