make interface implement Source