Updated with necessary changes