data layer class