first commit
angle class accept limitate range
work finished, i decide to not use the light
cause is an optional requirements and have no time left