added singleton generation script