reorganize unit tests and add one spec