inmplented new functions