Updated library to use new push-based idioms