added implementation strategies