partitioned components into their own files