extend proc instead of wrapping it