abstracted project