Updated documentation, add .gitignore
Use reflection to properly walk through an object