now have shared method for exec