this guy can actually be called from multiple threads. Let's make it thread-safe then