first draft of generic design