In-vivo computing