Refactoring provider abstraction, adding more veewee commands