Database layers that work, API adapater