Lots of improvmements