some code rearragnement