not safe prototype extend
document