constructor with user supplied knots