various tweaks to get the behavior we want... will refactor this later