fix SOA and style cleanup