Extract World logic onto separate object