random dates and some refactor
refactoring