a lot of stuff for howprogrammers, not sure when I last commited :/