filled in everything besides the draw method