add some fn