get rid of small annoying arithmetic bugs
- avoid duplicate code - implement different optimised code.