added singleton option for cases where you can't serialize
merge conflicts