implemented + and *