grid api

this should definitely be a separate method, we'd like to test this individually