PassThroughCode refactoring and create PassThrough Core and API for enhace reusability

Let's move getInstance methods to the top of the class