Separate walk-unit into walk & generate