core only has patch and diff... supporting functions moved to util

usage documentation added

additional use cases added, more testing