Move view components to their own packages