update spec
refactor notify