API cleanup

Fixes #977, #975, #974, #973, #972, #970, #911, #876.

:fire::fire::fire::fire::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::skull::fire::fire::fire::fire:
:fire::fire::fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire::fire::fire:
:fire::fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire::fire:
:fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire:
:fire::skull::fire::fire::fire::skull::skull::skull::skull::fire::fire::fire::fire::fire::skull::skull::skull::skull::fire::fire::fire::skull::fire:
:fire::skull::fire::fire::fire::skull::skull::skull::skull::fire::fire::fire::fire::fire::skull::skull::skull::skull::fire::fire::fire::skull::fire:
:fire::skull::fire::fire::fire::skull::skull::skull::fire::fire::fire::fire::fire::fire::fire::skull::skull::skull::fire::fire::fire::skull::fire:
:fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire:
:fire::skull::skull::skull::fire::fire::fire::fire::fire::fire::skull::skull::skull::fire::fire::fire::fire::fire::skull::skull::skull::fire::fire:
:fire::fire::fire::skull::skull::fire::fire::fire::fire::fire::skull::skull::skull::fire::fire::fire::fire::fire::skull::skull::fire::fire::fire:
:fire::fire::fire::skull::fire::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::fire::skull::fire::fire::fire:
:fire::fire::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::fire::fire:
:fire::fire::fire::skull::fire::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::skull::fire::fire::skull::fire::fire::fire:
:fire::fire::fire::fire::skull::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::skull::fire::fire::fire::fire:
:fire::fire::fire::fire::fire::skull::skull::fire::fire::fire::fire::fire::fire::fire::fire::fire::skull::skull::fire::fire::fire::fire::fire:
:fire::fire::fire::fire::fire::fire::fire::skull::skull::skull::skull::skull::skull::skull::skull::skull::fire::fire::fire::fire::fire::fire::fire: