Structs can now have optional fields

Fixes #105