'floor' should be public