not safe prototype extend