Fully Functioned Version, but not refactored