More implementations and tests