use add instead of roll, other small enhancements