check not null and make option immutable