all abstract everything