[core] Allow add_data to take a list of level

Fix #491