more features and fixes

limited to the canvas and randomised on NaN