now you can modify the scope; pretty powerful
much refactoring to get ready for a real backend