Full implementation of not_null