implemented utility functions