First Attempt at full functionality