slightly restructured and scale effects added