switch floor implementation