implementations and difficulty