just uploading some unfinished codes