back to original functional order, code much reduced, nameing convetion simplified