Wrapped in a Namespace

used a namespace to encapsulate the logic and internally used namespaces
implemented warning and error as function rather than a macro
integrated Component Manager class in System class