standard library updates
use a black underlay and only fill squares in white
speed test