adding trait to contain generic methods for client and admin objects, reorganise package