first rough draft of AbstractConstructor