implemented base process