implementing each