rewrote entire code structure