cleanup of api, send_all implementation, OO api