some code that need cleaning and later review