TODO
====

1. Implement more properly signal handling.

2. More portability.
