patterns use defined vars, not ._inputs
add util
whitespace
add compile function