Refactored sourceadapter