First commit.

Code seems to be stable enough to run.

Configuration GUI isn't tested totally,
so maybe some tweak is missing.