Moved all the internal classes to the namespace SmartTpl::Internal