more semantics, some spacing tweaks