Merge branch 'improve-singleton-init' into 'ibm-trunk'

Use initialization holder class idiom

See merge request !69