refactoring and work on name mangling, classes