Add do_read_at_least api call
Little refactor
Implement routing