a working version with hint for data loading