i like this code it deserves credit