refactoring multiplication to server so that we can support many types
committing progress