documentation - pointers instead of copies
primitive outline