first attempt at adding support for block scopes with let