first version
extended, plus test code
milestone completed