pre restucturing
merge after restructure