Try/by name functions

Review by @DarkDimius please.

Builds on #199