extended, plus test code