use sem-apply directly