Replace `virtual` constructors with `init`

This way we can create decorators like `VRef.capture`