perhaps throw rather than logging and returning null?