added failure detection - lil more to do