Made everything more OO and added examples for every class