an abstract attempt