Still WIP. Much more working.