Abstraction for support of other kinds of jobs

Hey @BatikhSouri 
Started by trying to make abstractions into extensions. Still needs a lot of work but it's a start.
Good job for the rest :+1: