@pavelgj out of curiosity, why have you picked a lazy init here ? (the code could be simpler at the expense of some bytes)