fix contact availability signal handling
add more contact methods and clean up API