dirty functions from backend are refactored