no instanceof, only .getClass().equals() hardcore