build component functionality implemented