refactored names for readablitily, removed redundent code, hid access to internal behaviour of grid