Refactor components into separate files