remove case class to trait
Add Future and define operator