Invertable base to reduce duplicated code