various improvements:
* added import completions
* centralized go interpreter lookup
* improved error handling
* use logging statements instead of print statements