serveral improvements!