upgraded hw04