CHANGED
- complete code overhaul