add run functionality