it is all working and ready for beta release and then a refactoring