namespace, separate classes and code formatting