IMPORTANT: start() now returns a Tuple(first thing is signal put a [0]), Added in working type checking