refactored to have a lot less dependencies (removed prism, servicelocator, Reactive, etc.)