Some restructuring of Create()