data access layer components