provide database implementation