added one more component and also refactored stuff