IDEAL utility functions