adding some protos... and adding them with __P seems wrong, but mixing __P and not __P in the same file seems wrong too, so...)