refactor and static