Sketching proposed interface.
Removed template parameter for existing classes