Moved more from core to Tool. Keep Tool class tiny