Feature hearts

Includes a lot of stuff from comments
Final newline missing.