Use array instead of list for completion listeners
Use more reasonable object size for attachments
Change the way channel wrapping works to reduce object allocation