Added default functions and sub-schemas
Added subSchema validation
Added ability to set a default function for a value