refactor options, p1