more facades; major refactoring to use them