public boolean addEmployee(Employee employee, int managerId, String managerName) {
		if (employee == null) throw new IllegalArgumentException();
		if (managerName == null && managerId ==0) {
			TreeNode newNode = new TreeNode(employee, null);
			if (company != null) //newNode.addWorker(company);
				company = newNode;
			return true;
		}else{
			TreeNode supervisor = null;
			try {
				supervisor = find(managerId, managerName);
			} catch (CompanyHierarchyException e) {
				throw new CompanyHierarchyException("Incorrect supervisor name for id!");
			}
			Employee temp = null;
			try {
				temp = getEmployee(employee.getId(), employee.getName());
			} catch (CompanyHierarchyException e) {
				throw new CompanyHierarchyException("Id already used!");
			}
			if (temp != null) return false;
			TreeNode t = new TreeNode(employee, supervisor);
			supervisor.addWorker(t);
			return true;
		}
	}