adding multiplication
changing to generic functions