Initial implementation of data layer.