implementing some of the new api