self-implement

done with you

done for you