refactored from lib folder to components folder