using structs for smaller expressions, this deserve its own time slot, going back to sicp now