user self defined with singleton type accessor