refactor subject