big refactor to allow for a project owner to just require chainsmoker