struct2boilerplat