Condense some SOA validation
Move some stuff to SOA.clean
Move some stuff back into SOA.save