updated into separated class.