reservation system design