almost done with design, but not quite