new features/updates and code reorganization