revised construction API and base class framework