add many implementations