All of Justin's changes, merge when ready.