simplified implementation for high-lelve functions