add sse acceleration and separate first order and second order parameters