add BOM and restructure