added dynamic input