added abstract option