saving new functionality; currently working. Need to cleanup still