implements myself