correct a typo
beautiful defines match class names
add macro to start three devices
fix a typo
add factory classes
use factory for sockets