first commit and partial working code