should now work, but we need to implement modulo!