Rework design

Closes #2