Fill out first implementation of new api. Allow make-connection to take an optional presence listener