add soa support