added singleton getter and create() methods