Cleaned up and added a minimal API for sending