design patters added