FINISHED ALL FUNCTIONALITIES!