data access separated from widget