don't crash on null inputs