more api changes, require $ and validation, add directive test for attr, change rules around argument parsing