restructure

### pull request is just for discussion, not done yet ###

- current structure doesn't look very extendable
- my ideas are dumped in the README, see diffs