should be handled by caller, not this file.