flesh out filesystem. add in factory method outline.