hall with some modification
Merge origin/master