retrieving source code is now generic