make a more modular design

even if everything is compiled together and statically linked, the
directory structure at least is kind of modular (as modular as go
allows to be...)