More design and bug fixed