refactor Voson::Chain