Refactor illuminating code and add multi light source support