#14 added unit tests