using __init in order to not conflict with vis methods
using $.extend for deep cloning