make an automatic version