added functions that need to be implemented