function has block-level