Add singletons for group,hosted,proxy,virtual
Make base types abstact