codes will initial (and on reset) propagate the whole chain
also tests and have Position module keep all positions (singletons should be at module, not class level)