complete some function