Refactor to create tile objects and fill them after rather than during tile generation