added initial function stuff