update design and code