moving code from the deadunit repo, and adding some documentation