omit now follows prof algorithm, and private funs are also static