renamed services test to functional test, because it's more conceptually accurate