almost came up with initial design