add multi-level methods