Most functionalities done.