numeric for specs
add while, refactor line_or_body