simplifying samme by not requiring explicit outcome vector, genericizing samme by pulling out last of the project specific code