Fix bug in Base#run implementation and add more complete test coverage