adding complete set of unit tests