add: local functions