Everything minus AI logic implemented