Restructuring
Add version flag