first order working version

first order working version