added unit tests + fake context + repository interfaces