much refactoring -- about to use controller as sytnax
see above