reorganization of code (separate files; namespace)