improved block()
actually improved block()