adding more data.frame functionality