begin Thor-based implementation