really accomplish this task rather difficult