Design iteration

Merging in Andrew's changes