add wrapper function, docs, move lll, change is_reduced to avoid redundancy