add distribution info support, refactor out context_property