adding a variety of new functions from various projects