implements sym, tag, pair; tests