use static inline for user code, don't worry about PROTECTCHECK for the moment