add internal implementations to avoid repeated engOpenQ checks. Fixes #15