Reconnect/clean

Rewritten, the rewrite that I had rewritten before, but now with more rewrites.

This is a response to the comments of #343 where the commits needed to cleaned up.
ZOMG massive highlight! 

@nambad, @danielbeardsley, @beatlevic, @guille, @MagicalTux, @dshaw, @einaros, @dvv and @dominiek