initial implementation of ConnectionManager