base class implemented, must fix rectangle drawing