add function register