add abstract data layer support