abstract change