Feature hearts

Includes a lot of stuff from comments