refactored data access methods