added some function