refactored + worked against interfaces
added implementation of publicationrepo