might as well just use CREATESTRUCT instead of reinventing the wheel