all main function are working