raw/generic refactor for issue #270 - Vircurex