initial solution that doesn't quite work yet