single processor implementation