bug fixed & code architecture reconstruct
bug fixed => duplicate button