implement state machine design pattern

Move stuff into BOM namespace