slightly more efficient SVM