finish book section 2.5 with a bit of left reimplementation, will do la later