Reformatted, new constructors