PassThroughCode refactoring and create PassThrough Core and API for enhace reusability

Need double locking here