refactor for general use
Create single file with all components