abstract_essentials
