implementation additions