optimization, hard criteria, docs