added
implemented a few spec.
udpate a test