move #perform to Reader Base class