fixed and added working struct constructs, needs more  testing