Merge of ofeefee's branch and my branch