(These are just some sketchy design notes used when making the game)

There will be level objects.

They will be an array of blocks.

Blocks will have a color, and when black, will not exist.

The level will have a method to draw itself to the screen.

-------------------------------------------

There will be a ball class.

It will have an X and a Y velocity, and a position.

It should also have a 'speed' variable, that is updated every so many ticks.

It will have an update method.

-------------------------------------------

There will be a paddle object.

It will be on the same X coordinates as the mouse is.

It doesn't need an update method.

Gotta make sure it can't go past the edge of the screen though, or the mouse isn't past its middle.

It will have a draw method that will check these things.

-------------------------------------------

There will be a manager, that may or may not be part of the main method.  It will, every tick, update the ball and check for collisions.

It will be able to tell the ball to rebound, in what direction, and also be able to tell a block that it has been hit.

It should also be able to tell the ball when it has hit the paddle, or at least use the location of the paddle and the ball to tell the ball what direction it should be going in after it has hit the ball.