Refactor: Separate ground and hierarchical strategies into different classes