first works, last should, still working on the middle one