Refactored product into its own package and moved go code