through interfaces
through goroutines