throwing exceptions in a constructor means it will probably leak a bit - but probably not significant.