refactored read marker