user supplied cap
use memcpy
format,typos,artifacts