Initial version adapted from JSON definition