Added static fromJSON method