Make fetch() callback-based