here we should guard agains null is