Abstract generate command