Rewrite using explicit constructors