Middle-out implementation