now using bind to preserve the 'this' object when using setTimeout()