Added go interface package and refactored go code and tests