use block instead of location