merge with vichan

this is a large merge, so some review will be nice