add run function
merged