major changes added almost verythnig