moved timer impl to port