File - Redesign + Tests

Must update Linux implementation next.