some work on interface