added unit tests attempt 1