Updated table and rewrote in oo style.