implement new functions from backend