clean up code
new elements, explain states
use state system for ions