worked through broadcasting, starting list of functions