add common functional