add @NotNull constraints to catch errors before commit.