Mutation Interface

Add new mutation interfaces
Merge remote-tracking branch 'origin/Mutation' into AST