Basic design

this resolves #3