refactored FS