pseudo code for constructors