working input output complex