issue #27 begin peer implementation