some unnecessary things deleted