add a couple incomplete functions