PassThroughCode refactoring and create PassThrough Core and API for enhace reusability

warn should be printed irrespective of whether debug logs is enabled