optimized & bug fixed