added fast path