add hammer externs and fix a bug in :container handling