and double all that to make sure it works with all nullable types too