refactor to use `port` instead of `shared_var`
added cicayda framework example