Updated with my functional definitions