rewrote everything for a simpler design, not so much engineering in advance