refactor on vb, ib