Added a basic implementation from online source. Can use as a base which we can tweak to meet our needs