Update Design, improve functions, change names