bug fix & implemented enhance