added implementation for new functions