I thought it's never null now. 
If it can't be null, we should throw an exception