metadata json base class abstraction implemented