no deafult return value, compiler may (although it should not) warn