Implemented #5 & #6 and some more.