lighting implementations, untested