Implementation of data layer