refactored SharedFile