added abstract web services and tests