work on do not reinvent the wheel, thanks IE