refactor ft