Enginelight

Adds enginelight (per #4)

- merge after #10, since it depends on that