Separate Simple implementation into syntax and semantics