refactor datetime & add friendship as a intermediate model