V0.2 [updated] Fixed downcasting issues in clone()