implement references