add some semantics and formatting