reorg for reusability