use better openstruct constructor