inlined constructors to save vertical line space