An attempt to improve performance - use singletons where possible