all work fine, some refactoring coming