tool should require core and its own classes