re-arrange. do null in the end!