Abstract definitions