full refactor. Mongodb as main db and redis as Cache