Abstract model