improve login fuction
add geo_info model