Add design and fix bugs