private void writeMethod(YamlFile yamlFile, Method m) throws IllegalAccessException, InstantiationException
    {
        if(m.getAnnotations().length > 0 && m.getAnnotations()[0].annotationType().getName().equals(configurableAnnotation.getName()))//TODO probably better way to compare these
        {
            Class<?> parameterType = m.getParameterTypes()[0];

            if(implementsConfigurationSerializable(parameterType))//Maybe later we can just forget about ConfigurationSerializable completely?
            {
                System.out.println("Serializable detected.");
                writeSerializable(yamlFile, getKeyFromMethodName(m.getName()), parameterType);
            }
            else if(parameterType.isArray() && implementsConfigurationSerializable(parameterType.getComponentType()))
            {
                writeArray(yamlFile, getKeyFromMethodName(m.getName()), parameterType);
            }
            else if(parameterType.isArray() && isSupportedType(parameterType.getComponentType()))
            {
                writeArray(yamlFile, getKeyFromMethodName(m.getName()), parameterType);
            }
            else if(isSupportedType(parameterType))
            {
                writeType(yamlFile, getKeyFromMethodName(m.getName()), parameterType);
            }
            else
            {
                bulka.getPlugin().getLogger().warning("Encountered a method marked configurable with unsupported parameter type " + m.getParameterTypes()[0] + " in " + m.getName());
            }
        }
    }