added private/public, subscribe/unsubscribe