major over haul: singleton => pure statics