Design changes

Covers most issues of #16