modified for IBM