add def-elem(s) and tighten up a bit