Separate state management into a different class
Remove unused include
Callback-based reader