an extensible grid class