update to use a modular structure
update version