rough sketch editing; restructure to make ide understand more