Add comments
Fix bugs