separated graphics and rendering from the board object, also replaced numpy dtype with standard tuples instead of class object