Cleaning up syntax

removing semi-colons
cleaning closure syntax
removing self as it’s inferred

Using optionals to avoid alloc'ing objects that are thrown away

cleaning up enums