added different types of inputs