refactored component constructors so that all logic is now in initialize...

... and withBase is no longer internal to the component module