prefer inheriting constructors directly