tested and ready for tweaking, still needs reconstruction viz