repository adapter