Repository refactoring and Initial fullscreen implementation

BaseRepository now takes care of boiler plate code that was repeated all
over;
Initial fullscreen implementation