added structure and api and responsiveness