Refactor timer API to follow named ports approach as outlined in #20
Port examples of timer usage to new API