added remaining functions