pseudo code written, basic classed added