added files from the gitrb project, which seems abandoned, but which is great code