[core] Allow add_data to take a list of levels

Fix #491