Updated with functionality