I am just adding in the what i have so far and the functionality will be
updated soon.