some algorithms that might be fun