refactor most CSW inits to centralize error handling (#18)