prototype generic_timer & scheduler