replace runnable by observable