group visibility test
nicer function style
support for rotation
use attribute functions