Added tail call elimination

GOTO statement considered harmful