сорри за многабуков, но это одна из самых интересных и мозгосломных частей работы с контекстом, я там норм шишек набил