statically typing constructors