separate github login module out