minimal refactor of FT