Rect stores data as int, rather than size_t (allows for negative offsets)