refactored FT