added main go function