Refactored version

New package structure.