https://anilr8.medium.com/why-nullable-should-never-be-used-with-primitive-types-in-java-bf433c7fb6ed