presence detection
add initial geo support and other functions