The main reason why you have to pre-declare signals is because an object rarely references its own signals, except to actually signal them. If you put a nice signal declaration statement at the beginning of your constructor, you are letting people know what signals there are.
