added some more of orginal functionality