Funq Part III: adding named services and refactoring to improve code