refactor some; add sergeant vs. flag