add missed low-level conversion function