Changes to Singulo, ported over the OOP Singulo changes from /tg/.

This isn't finished yet.
```return``` not necessary, implied at the end of the proc.