add util package and some interfaces