working component. still more changes to be done.