Generic elements refactoring
refactoring generic components