better implementation of snow