Rest of incomplete commit 6cbcc64