Full code committed, transferred from BitBucket