run method revised