updating design and functionality