new concept totally working, now for refactoring!