SSOM refactoring & testing
CSOM refactoring and fixes