First Commit - Working code that needs plenty of improvement