make the key controller thread friendly, testedt its singleton properties