added some methods for repo UI
renamed exception class, added more to map different cases
generics
separate interfaces for local/remote interaction