Add signal
Add structure
Add server main
Add client main