added subclasses for Arrow