Rough very slow version