added json implemtation to prevent reflect