new refactored logic: 0.1.0