Sandy MacIver signs new contract