always use non-null pointers