tinker with abstract