refactored ywl completely