Okay, here's how this should work: Tile.py - Tile class holds x, y, and status information Board.py - Board class creates and holds a matrix of Tiles Game.py - Probably doesn't need to be an object (take that, Java) should hold the pygame code and manipulate the Board class.