add unit tests