Lots of improvments