small refactor of structs
Merge branch 'master' into structs
add optional arguments for struct's primitives
Merge branch 'master' into structs