using for...in when traverse object, see: http://jsperf.com/performance-object-keys