add ICoder interface

has some error