Merge aku's changes (slightly stale)
Merge aku's changes again