refactored towards poor mans DI