Add comments
simplify
Fix toObject