added the abstract types for storing data