add functions&a little change