Everything is almost done, all required functions are working properly.