a generic soa example