added degree calculation and varying size
minimal layouting