cleaning up with new functions