Feature/implement generic adapter 3184

If it's no longer tied to enqueuing jobs (which is neat), this method maybe could be called something like `perform`