add ext and tests