Demo version, functioning but need clean code