add common function achieve