use int instead of uint32_t for convenience
let rotation optionally not wrap around
println cleanups
cleanup and pattern tweaks