refactor to new hulk-core interface