Update Commit to handle errors
Update Repository to have proper Path objects
Implement repository initialization
Implement smarter serialization