shrink it down a bit and logical changes