starts getting ugly. TODO: get back to a counter for filling level