implemented all functions but nothing has been tested so there might be problem with functionalitet and design