maybe it makes sense to define it in the class constructor, and then cache in a static field