debugged, tested and working