clearer version handling
new module interface