This is too complicated for one line. Test + function call + test on return + assignment?!