Add canIncrement and various fixups