refactor Post