add visibfunc