@SuppressWarnings("unchecked")
    public Object getObjectFromPath(String prop) {
        if (prop.contains("/")) {
            String[] split = prop.split("/");

            Map<String, Object> newBase = this.base;
            Object out = null;
            for (String splat : split) {
                Object got = newBase.get(splat);

                if (got == null) {
                    return null;
                } else {
                    try {
                        newBase = (Map<String, Object>) got;
                    } catch (ClassCastException ex) {
                        out = got;
                    }
                }

            }
            return out;
        } else {
            if (prop.length() == 0) {
                return base;
            }

            return base.get(prop);
        }
    }