Implements singleton support, but we still need to test it more and perhaps improve its performance. (FELIX-102)