rearrange constructor functions
comments