add assert and log
improve bucket prop engine