big rework, simplification mostly